/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.vdab.voertuigen.div;

import java.io.Serializable;

/**
 *
 * @author Joris.Lefever
 */
public final class Nummerplaat implements Comparable,Serializable {
    // TODO Misschien moet er nog een method geschreven worden om de data weg te schrijven in OutputStream
    
    private final String nummerplaat;
    
    // TODO:  Moet public hiervoor of niet (default visibility) 
    Nummerplaat(String plaat){
        nummerplaat = plaat;
    }
    
    public final String getPlaat(){
        return nummerplaat;
    }
    
    public static Nummerplaat getNummerplaat(){
        return DIV.getInstance().getNummerplaat();
    }
    
    @Override
    public final String toString(){
        return nummerplaat;
    }
    
    @Override
    public boolean equals(Object o){
         if (o==null)
            return false;
         else
            if (o instanceof Nummerplaat){
                Nummerplaat nr = (Nummerplaat) o;
                if (nummerplaat.equals(nr.getPlaat()))
                   return true;
                else
                   return false;
            }
            else
               return false;

    }
    
    @Override
    public int hashCode(){
       return nummerplaat.hashCode();
    }
    
    @Override 
    public int compareTo(Object o){
        if (o == null)
            throw new NullPointerException();
        else {
            Nummerplaat nr = (Nummerplaat) o;
            if (nummerplaat.compareTo(nr.getPlaat()) > 0)
                return 1;
            else {
                if (nummerplaat.compareTo(nr.getPlaat()) < 0)
                    return -1;
                else 
                    return 0;
            }
        }
    }
}
